package org.stvd.service.message;

import java.util.Date;
import java.util.Map;

import org.stvd.common.utils.ServiceResult;
import org.stvd.core.dto.QueryResult;
import org.stvd.entities.message.BsMessageInfo;
import org.stvd.service.base.BaseService;

/**
 * @Title: BsMessageInfoService
 * @Description: 消息内容业务层接口类
 * @author houzx
 * @date 2020年9月18日
 */
public interface BsMessageInfoService extends BaseService<BsMessageInfo>{

    /**
     * @Description: 根据条件查询消息发送集合
     * @param start
     * @param limit
     * @param queryStartDate 开始时间
     * @param queryEndDate 截止时间
     * @param title 消息标题
     * @param sendId 发送用户ID
     * @return
     */
    QueryResult<BsMessageInfo> querySendMessageResult(int start, int limit,
        Date queryStartDate, Date queryEndDate, String title, String sendId);
    
    /**
     * @Description: 发送私信
     * @param recId 接受者ID
     * @param message 私信内容
     * @return
     */
    ServiceResult<Map<String, Object>> sendPrivateMessage(String recId, String message);
    
    /**
     * @Description: 发送私信
     * @param recId 接受者ID
     * @param sendId 发送者ID
     * @param message 私信内容
     * @return
     */
    ServiceResult<Map<String, Object>> sendPrivateMessage(String recId, String sendId, String message);
    
    /**
     * @Description: 发送公共消息
     * @param sendId 发送者ID
     * @param title 消息标题
     * @param message 消息内容
     * @return
     */
    ServiceResult<Map<String, Object>> sendPublicMessage(String sendId, String title, String message);
    
    /**
     * @Description: 发送系统消息
     * @param title 消息标题
     * @param message 消息内容
     * @return
     */
    ServiceResult<Map<String, Object>> sendSystemMessage(String title, String message);

    /**
     * @Description: 新增消息
     * @param bsMessageInfo
     * @return
     */
    ServiceResult<Map<String, Object>> insertMessageInfo(BsMessageInfo bsMessageInfo);
}
